﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kokomo.Lexical.Expressions;

namespace Kokomo.PeInspector.Reflection.Disassembly
{
	class IndirectCallExpression : ParameterizedExpression
	{
		public IndirectCallExpression(
			Expression target,
			Expression[] arguments
			)
			: base(arguments)
		{
			if (target == null) throw new ArgumentNullException("target");
			this.Target = target;
		}

		public Expression Target { get; private set; }

		public override string ToString()
		{
			return this.Target.ToString() + "(" + base.ToString() + ")";
		}

		public override ExpressionResult Evaluate(ExpressionEvaluateContext context)
		{
			throw new NotImplementedException();
		}
	}
}
